---
title: "Line Height"
description: "Utilities for controlling the leading (line height) of an element."
features:
  responsive: true
  customizable: true
  hover: false
  focus: false
---

import plugin from 'tailwindcss/lib/plugins/lineHeight'
import { Variants } from '@/components/Variants'
import { Disabling } from '@/components/Disabling'
import { Heading } from '@/components/Heading'

export const classes = { plugin }

## Relative line-heights

Use the `leading-none`, `leading-tight`, `leading-snug`, `leading-normal`, `leading-relaxed`, and `leading-loose` utilities to give an element a relative line-height based on its current font-size.

```html purple
<template preview>
  <div class="mb-6">
    <p class="mb-1 text-sm text-purple-600">.leading-none</p>
    <p class="leading-none text-purple-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-purple-600">.leading-tight</p>
    <p class="leading-tight text-purple-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-purple-600">.leading-snug</p>
    <p class="leading-snug text-purple-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-purple-600">.leading-normal</p>
    <p class="leading-normal text-purple-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-purple-600">.leading-relaxed</p>
    <p class="leading-relaxed text-purple-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div>
    <p class="text-sm text-purple-600">.leading-loose</p>
    <p class="leading-loose text-purple-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
</template>

<p class="**leading-none** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-tight** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-snug** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-normal** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-relaxed** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-loose** ...">Lorem ipsum dolor sit amet ...</p>
```

## Fixed line-heights

Use the `leading-{size}` utilities to give an element a fixed line-height, irrespective of the current font-size. These are useful when you need very precise control over an element's final size.

```html emerald
<template preview>
  <div class="mb-6">
    <p class="mb-1 text-sm text-emerald-600">.leading-3</p>
    <p class="leading-3 text-emerald-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-emerald-600">.leading-4</p>
    <p class="leading-4 text-emerald-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-emerald-600">.leading-5</p>
    <p class="leading-5 text-emerald-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-emerald-600">.leading-6</p>
    <p class="leading-6 text-emerald-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-emerald-600">.leading-7</p>
    <p class="leading-7 text-emerald-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-emerald-600">.leading-8</p>
    <p class="leading-8 text-emerald-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div class="mb-6">
    <p class="mb-1 text-sm text-emerald-600">.leading-9</p>
    <p class="leading-9 text-emerald-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
  <div>
    <p class="mb-1 text-sm text-emerald-600">.leading-10</p>
    <p class="leading-10 text-emerald-800">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda, quia temporibus eveniet a libero incidunt suscipit laborum, rerum accusantium modi quidem, ipsam illum quis sed voluptatum quae eum fugit earum.</p>
  </div>
</template>

<p class="**leading-3** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-4** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-5** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-6** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-7** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-8** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-9** ...">Lorem ipsum dolor sit amet ...</p>
<p class="**leading-10** ...">Lorem ipsum dolor sit amet ...</p>
```

## Responsive

To control the line height of an element at a specific breakpoint, add a `{screen}:` prefix to any existing line height utility. For example, use `md:leading-loose` to apply the `leading-loose` utility at only medium screen sizes and above.

```html
<p class="leading-none **md:leading-loose** ...">Lorem ipsum dolor sit amet ...</p>
```

For more information about Tailwind's responsive design features, check out the [Responsive Design](/docs/responsive-design) documentation.

It's important to note that by default, Tailwind's [font-size](/docs/font-size) utilities each set their own default line-height. This means that any time you use a responsive font-size utility like `sm:text-xl`, any explicit line-height you have set for a smaller breakpoint will be overridden.

```html
<!-- The `leading-loose` class will be overridden at the `md` breakpoint -->
<p class="text-lg leading-loose md:text-xl">
  Lorem ipsum dolor sit amet ...
</p>
```

If you want to override the default line-height after setting a breakpoint-specific font-size, make sure to set a breakpoint-specific line-height as well:

```html
<!-- The `leading-loose` class will be overridden at the `md` breakpoint -->
<p class="text-lg leading-loose md:text-xl md:leading-loose">
  Lorem ipsum dolor sit amet ...
</p>
```

Using the same line-height across different font sizes is generally not going to give you good typographic results. Line-height should typically get smaller as font-size increases, so the default behavior here usually saves you a ton of work. If you find yourself fighting it, you can always [customize your font-size scale](https://tailwindcss.com/docs/font-size#customizing) to not include default line-heights.

## Customizing

By default, Tailwind provides six relative and eight fixed `line-height` utilities. You change, add, or remove these by customizing the `lineHeight` section of your Tailwind theme config.

```diff-js
  // tailwind.config.js
  module.exports = {
    theme: {
      extend: {
        lineHeight: {
+         'extra-loose': '2.5',
+         '12': '3rem',
        }
      }
    }
  }
```

### Variants

<Variants plugin="lineHeight" />

### Disabling

<Disabling plugin="lineHeight" />
